package nsu.edu.zsq.service.student;

import java.util.HashMap;
import java.util.List;

import com.github.pagehelper.PageInfo;

import nsu.edu.zsq.bean.StuCourse;
import nsu.edu.zsq.param.PageQuery;
import nsu.edu.zsq.param.TchCourseParam;

/** 
* Description: 学生课程管理的service类<br>
*/
public interface CourseManagerService {

    /**
     * 获取该学生的课表
     * @return List<StuCourse>
     */
    public List<StuCourse> listStuCourse();

    /**
     * 获取选修课列表，包括该学生所在专业的专业选修+公共选修（用于学生选课操作）
     * @param pageQuery 分页信息
     * @return PageInfo<TchCourseParam>
     */
    public PageInfo<TchCourseParam> listTchCourse(PageQuery pageQuery);

    /**
     * 保存一条学生选课结果
     * @param tchCourseId 教师课程id
     */
    public void chooseCourse(int tchCourseId);

    /**
     * 获取学生的选课结果
     * @return List<StuCourse>
     */
    public List<HashMap<String, String>> listStuChooseCourse();

    /**
     * 退选一个课程
     * @param stuCourseId 学生课程id
     */
    public void removeChooseCourse(int stuCourseId);
}
